<?php

/**
 * FicheForum
 */
class FicheForum extends CI_Model
{
	const TABLE_FICHE_FORUM						= 'fichebilanforum';
	const ID_FICHE_FORUM						= 'IDFicheForum';
	const ID_FORUM_FICHE_FORUM					= 'IDForum';
	const DUREE_PRESENCE_FICHE_FORUM	 		= 'DureeEffectivePresence';
	const TEMPS_TRAJET_FICHE_FORUM				= 'TempsTrajet';
	const ACCUEIL_FICHE_FORUM					= 'Accueil';
	const EMPLACEMENT_FICHE_FORUM				= 'Emplacement';
	const CIRCULATION_FICHE_FORUM 				= 'Circulation';
	const FREQUENTATION_FICHE_FORUM 			= 'Frequentation';
	const INTERET_RENOUVELER_FICHE_FORUM		= 'InteretRenouveler';
	const COMMENTAIRE_FICHE_FORUM				= 'Commentaire';
	const ETAT_FICHE_FORUM						= 'EtatFicheF';
	
	/**
	 * @var integer
	 */
	private $id;
	
	/**
	 * @var integer
	 */
	private $idForum;
	
	/**
	 * @var time
	 */
	private $dureePresence;
	
	/**
	 * @var time
	 */
	private $tempsTrajet;
	
	/**
	 * @var string
	 */
	private $accueil;
	
	/**
	 * @var string
	 */
	private $emplacement;
	
	/**
	 * @var string
	 */
	private $circulation;
	
	/**
	 * @var string
	 */
	private $frequentation;
	
	/**
	 * @var string
	 */
	private $interetRenouveler;
	
	/**
	 * @var string
	 */
	private $commentaire;
	
	/**
	 * @var int
	 */
	private $etatFicheForum;
	
	
	public function __construct()
	{
		parent::__construct();
	}
	
	/**
	 * Fonction permettant de récupérer une fiche forum en fonction de l'identifiant du forum
	 * @param integer $id identifiant du forum
	 * @return FicheForum
	 */
	public static function findById($id)
	{
		$CI = get_instance();
	
		$CI->load->database('db_adc', true);
	
		$resultat = $CI->db	->select(self::ID_FICHE_FORUM.','.self::DUREE_PRESENCE_FICHE_FORUM.','.self::TEMPS_TRAJET_FICHE_FORUM.','.self::ACCUEIL_FICHE_FORUM.','.self::EMPLACEMENT_FICHE_FORUM.','.self::CIRCULATION_FICHE_FORUM.','.self::FREQUENTATION_FICHE_FORUM.','.self::INTERET_RENOUVELER_FICHE_FORUM.','.self::COMMENTAIRE_FICHE_FORUM.','.self::ETAT_FICHE_FORUM)
							->from(self::TABLE_FICHE_FORUM)
							->where(self::ID_FORUM_FICHE_FORUM, $id)
							->limit(1)
							->get()
							->result_array();
	
		if(!empty($resultat))
		{
			$ficheForum = new FicheForum();
			$ficheForum->setId($resultat[0][self::ID_FICHE_FORUM]);
			$ficheForum->setIdForum($id);
			$ficheForum->setDureePresence($resultat[0][self::DUREE_PRESENCE_FICHE_FORUM]);
			$ficheForum->setTempsTrajet($resultat[0][self::TEMPS_TRAJET_FICHE_FORUM]);
			$ficheForum->setAccueil($resultat[0][self::ACCUEIL_FICHE_FORUM]);
			$ficheForum->setEmplacement($resultat[0][self::EMPLACEMENT_FICHE_FORUM]);
			$ficheForum->setCirculation($resultat[0][self::CIRCULATION_FICHE_FORUM]);
			$ficheForum->setFrequentation($resultat[0][self::FREQUENTATION_FICHE_FORUM]);
			$ficheForum->setInteretRenouveler($resultat[0][self::INTERET_RENOUVELER_FICHE_FORUM]);
			$ficheForum->setCommentaire($resultat[0][self::COMMENTAIRE_FICHE_FORUM]);
			$ficheForum->setEtatFicheForum($resultat[0][self::ETAT_FICHE_FORUM]);
	
			return $ficheForum;
		}
		return false;
	}

	/**
	 * Permet de vérifier le formulaire de création et modification d'une fiche bilan forum
	 * @param string $dureePresence
	 * @param string $tempsTrajet
	 * @param string $accueil
	 * @param string $emplacement
	 * @param string $circulation
	 * @param string $frequentation
	 * @param string $interetRenouveler
	 * @return true ou false
	 */
	public function checkFBF($dureePresence, $tempsTrajet, $accueil, $emplacement, $circulation, $frequentation, $interetRenouveler)
	{
		$CI =& get_instance();
		$message = '';
		$retour = true;
		
		if($dureePresence == null || $tempsTrajet == null || $accueil == null || $emplacement == null || $circulation == null || $frequentation == null || $interetRenouveler == null)
		{
			$message .= "<br>Vous devez remplir tout les champs obligatoires.";
			$CI->session->set_flashdata('message', $message);
			return false;
		}
		else
		{
			if(!verif($dureePresence, 'time'))
			{
				$message .= "<br>Format de la durée de présence incorrecte, elle doit être de la forme hh:mm.";
				$retour = false;
			}
			
			if(!verif($tempsTrajet, 'time'))
			{
				$message .= "<br>Format du temps de trajet incorrect, il doit être de la forme hh:mm.";
				$retour = false;
			}
			$ok1=false;
			$ok2=false;
			$ok3=false;
			$ok4=false;
			for($i=1;$i<6;$i++)
			{
				if($accueil == $i)
					$ok1=true;
				if($emplacement == $i)
					$ok2=true;
				if($circulation == $i)
					$ok3=true;
				if($frequentation == $i)
					$ok4=true;
			}
			$ok5=false;
			for($i=1;$i<4;$i++)
				if($interetRenouveler == $i)
					$ok5=true;
			if($ok1==false || $ok2==false || $ok3==false || $ok4==false || $ok5==false)
			{
				$message .="<br>Champs incorrects.";
				$retour = false;
			}
			
			$CI->session->set_flashdata('message', $message);
			return $retour;
		}
	}
	
	
	/**
	 * Fonction permettant d'ajouter une fiche bilan forum
	 * @param int $idForum
	 * @param string $dureePresence
	 * @param string $tempsTrajet
	 * @param string $accueil
	 * @param string $emplacement
	 * @param string $circulation
	 * @param string $frequentation
	 * @param string $interetRenouveler
	 * @param string $commentaire
	 * @param string $etatFicheForum
	 * @return true ou false
	 */
	public static function addFBF($idForum, $dureePresence, $tempsTrajet, $accueil, $emplacement, $circulation, $frequentation, $interetRenouveler, $commentaire, $etatFBF)
	{
		$CI = get_instance();
	
		$CI->load->database('db_adc', true);
		 
		if($commentaire != null)
			$CI->db->set(self::COMMENTAIRE_FICHE_FORUM, $commentaire);
		 
		$CI->db->set(self::ID_FORUM_FICHE_FORUM, $idForum);
		$CI->db->set(self::DUREE_PRESENCE_FICHE_FORUM, $dureePresence);
		$CI->db->set(self::TEMPS_TRAJET_FICHE_FORUM, $tempsTrajet);
		$CI->db->set(self::ACCUEIL_FICHE_FORUM, $accueil);
		$CI->db->set(self::EMPLACEMENT_FICHE_FORUM, $emplacement);
		$CI->db->set(self::CIRCULATION_FICHE_FORUM, $circulation);
		$CI->db->set(self::FREQUENTATION_FICHE_FORUM, $frequentation);
		$CI->db->set(self::INTERET_RENOUVELER_FICHE_FORUM, $interetRenouveler);
		$CI->db->set(self::COMMENTAIRE_FICHE_FORUM, $commentaire);
		$CI->db->set(self::ETAT_FICHE_FORUM, $etatFBF);
		 
		return $CI->db->insert(self::TABLE_FICHE_FORUM);
	}
	
	
	/**
	 * Fonction permettant de modifier une fiche bilan forum
	 * @param int $idForum
	 * @param string $dureePresence
	 * @param string $tempsTrajet
	 * @param string $accueil
	 * @param string $emplacement
	 * @param string $circulation
	 * @param string $frequentation
	 * @param string $interetRenouveler
	 * @param string $commentaire
	 * @param string $etatFicheForum
	 * @return true ou false
	 */
	public function modifyFBF($dureePresence, $tempsTrajet, $accueil, $emplacement, $circulation, $frequentation, $interetRenouveler, $commentaire, $etatFBF)
	{
		$CI = get_instance();
	
		$CI->load->database('db_adc', true);
			
		if($commentaire != null)
			$CI->db->set(self::COMMENTAIRE_FICHE_FORUM, $commentaire);
		 
		$CI->db->set(self::DUREE_PRESENCE_FICHE_FORUM, $dureePresence);
		$CI->db->set(self::TEMPS_TRAJET_FICHE_FORUM, $tempsTrajet);
		$CI->db->set(self::ACCUEIL_FICHE_FORUM, $accueil);
		$CI->db->set(self::EMPLACEMENT_FICHE_FORUM, $emplacement);
		$CI->db->set(self::CIRCULATION_FICHE_FORUM, $circulation);
		$CI->db->set(self::FREQUENTATION_FICHE_FORUM, $frequentation);
		$CI->db->set(self::INTERET_RENOUVELER_FICHE_FORUM, $interetRenouveler);
		$CI->db->set(self::COMMENTAIRE_FICHE_FORUM, $commentaire);
		$CI->db->set(self::ETAT_FICHE_FORUM, $etatFicheForum);
			
		$CI->db->where(self::ID_FICHE_FORUM, (int)$this->getId());
		
		return $CI->db->update(self::TABLE_FICHE_FORUM);
	}
	
	
	/**
	 * Fcontion permettant de modifier l'état de la fiche bilan forum après confirmation
	 * @return true ou false
	 */
	public function confirmFBF()
	{
		$CI = get_instance();
	
		$CI->load->database('db_adc', true);

		$CI->db->set(self::ETAT_FICHE_FORUM, 1);
			
		$CI->db->where(self::ID_FICHE_FORUM, (int)$this->getId());
		
		return $CI->db->update(self::TABLE_FICHE_FORUM);
	}
	
	/**
	 * Fcontion permettant de retourner les appréciations selon le nombre
	 * @param int $id
	 * @return string
	 */
	public function getListe($id)
	{
		$result = false;
		if ($id == 1)
			$result="Très satisfaisant";
		elseif ($id == 2)
		$result="Satisfaisant";
		elseif ($id == 3)
		$result="Moyen";
		elseif ($id == 4)
		$result="Insuffisant";
		elseif ($id == 5)
		$result="Inexistant";
	
		return $result;
	}
	
	/**
	 * Fcontion permettant de retourner l'appréciations de l'interet à renouveler selon le nombre
	 * @param int $id
	 * @return string
	 */
	public function getListeInteret($id)
	{
		$result = false;
		if ($id == 1)
			$result="Indispensable";
		elseif ($id == 2)
		$result="Utile";
		elseif ($id == 3)
		$result="Aucun intérêt";
	
		return $result;
	}
	
	
	/**
	 * Get id
	 *
	 * @return integer
	 */
	public function getId()
	{
		return $this->id;
	}
	
	/**
	 * Set id
	 *
	 * @param integer id
	 * @return FicheForum
	 */
	public function setId($id)
	{
		$this->id = $id;
	}
	
	/**
	 * Get forum
	 *
	 * @return Forum
	 */
	public function getForum()
	{
		return Forum::findById($this->idForum);
	}
	
	/**
	 * Set idForum
	 *
	 * @param integer idForum
	 * @return FicheForum
	 */
	public function setIdForum($idForum)
	{
		$this->idForum = $idForum;
	}
	
	/**
	 * Set dureePresence
	 *
	 * @param time $dureePresence
	 * @return FicheForum
	 */
	public function setDureePresence($dureePresence)
	{
		$this->dureePresence = $dureePresence;
	}
	
	/**
	 * Get dureePresence
	 *
	 * @return time
	 */
	public function getDureePresence()
	{
		return $this->dureePresence;
	}
	
	/**
	 * Set tempsTrajet
	 *
	 * @param time $tempsTrajet
	 * @return FicheForum
	 */
	public function setTempsTrajet($tempsTrajet)
	{
		$this->tempsTrajet = $tempsTrajet;
	}
	
	/**
	 * Get tempsTrajet
	 *
	 * @return time
	 */
	public function getTempsTrajet()
	{
		return $this->tempsTrajet;
	}
	
	/**
	 * Set accueil
	 *
	 * @param string $accueil
	 * @return FicheForum
	 */
	public function setAccueil($accueil)
	{
		$this->accueil = $accueil;
	}
	
	/**
	 * Get accueil
	 *
	 * @return string
	 */
	public function getAccueil()
	{
		return $this->accueil;
	}
	
	/**
	 * Set emplacement
	 *
	 * @param string $emplacement
	 * @return FicheForum
	 */
	public function setEmplacement($emplacement)
	{
		$this->emplacement = $emplacement;
	}
	
	/**
	 * Get emplacement
	 *
	 * @return string
	 */
	public function getEmplacement()
	{
		return $this->emplacement;
	}
	
	/**
	 * Set circulation
	 *
	 * @param string $circulation
	 * @return FicheForum
	 */
	public function setCirculation($circulation)
	{
		$this->circulation = $circulation;
	}
	
	/**
	 * Get circulation
	 *
	 * @return string
	 */
	public function getCirculation()
	{
		return $this->circulation;
	}
	
	/**
	 * Set frequentation
	 *
	 * @param string $frequentation
	 * @return FicheForum
	 */
	public function setFrequentation($frequentation)
	{
		$this->frequentation = $frequentation;
	}
	
	/**
	 * Get frequentation
	 *
	 * @return string
	 */
	public function getFrequentation()
	{
		return $this->frequentation;
	}
	
	/**
	 * Set interetRenouveler
	 *
	 * @param string $interetRenouveler
	 * @return FicheForum
	 */
	public function setInteretRenouveler($interetRenouveler)
	{
		$this->interetRenouveler = $interetRenouveler;
	}
	
	/**
	 * Get interetRenouveler
	 *
	 * @return string
	 */
	public function getInteretRenouveler()
	{
		return $this->interetRenouveler;
	}
	
	/**
	 * Set commentaire
	 *
	 * @param string $commentaire
	 * @return FicheForum
	 */
	public function setCommentaire($commentaire)
	{
		$this->commentaire = $commentaire;
	}
	
	/**
	 * Get commentaire
	 *
	 * @return string
	 */
	public function getCommentaire()
	{
		return $this->commentaire;
	}
	
	/**
	 * Set etatFicheForum
	 *
	 * @param int $etatFicheForum
	 * @return FicheForum
	 */
	public function setEtatFicheForum($etatFicheForum)
	{
		$this->etatFicheForum = $etatFicheForum;
	}
	
	/**
	 * Get etatFicheForum
	 *
	 * @return int
	 */
	public function getEtatFicheForum()
	{
		return $this->etatFicheForum;
	}
	
	
}
